package com.quick.android.utils;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 格式检查
 * 
 * @author quick
 * 
 */
public class CheckUtils {
	/**
	 * 判断字符串是否为null或长度为0
	 * 
	 * @param str
	 * @return bool
	 */
	public static boolean isStrEmpty(String str) {
		if (str == null || str.length() == 0) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 判断List是否为null或size = 0
	 * 
	 * @param list
	 * @return
	 */
	public static <T> boolean isListEmpty(List<T> list) {
		if (list == null || list.size() == 0) {
			return true;
		} else {
			return false;
		}
	}

	/** 获取List数据的size */
	public static <T> int getListSize(List<T> list) {
		return (list == null) ? 0 : list.size();
	}

	/**
	 * 判断Map是否为null或size = 0
	 * 
	 * @param map
	 * @return
	 */
	public static <K, V> boolean isMapEmpty(Map<K, V> map) {
		if (map == null || map.size() == 0) {
			return true;
		} else {
			return false;
		}

	}

	/** 获取Map数据的size */
	public static <K, V> int getMapSize(Map<K, V> map) {
		return (map == null) ? 0 : map.size();
	}

	/**
	 * 判断Set是否为null或size = 0
	 * 
	 * @param set
	 * @return
	 */
	public static <E> boolean isSetEmpty(Set<E> set) {
		if (set == null || set.size() == 0) {
			return true;
		} else {
			return false;
		}
	}

	/** 获取Set数据的size */
	public static <E> int getSetSize(Set<E> set) {
		return set == null ? 0 : set.size();

	}

	/**
	 * 判断字符串是否为纯数字
	 * 
	 * @param str
	 * @return
	 */
	public static boolean isNumber(String str) {
		if (isStrEmpty(str)) {
			return false;
		}
		return str.matches("[0-9]+");
	}

	/**
	 * 判断字符串是否为纯字母
	 * 
	 * @param str
	 * @return
	 */
	public static boolean isLetter(String str) {
		if (isStrEmpty(str)) {
			return false;
		}
		return str.matches("[a-zA-Z]+");
	}

	/**
	 * 判断是否为邮箱格式
	 * 
	 * @param str
	 * @return
	 */
	public static boolean isEmailAddress(String str) {
		String match = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
		if (isStrEmpty(str)) {
			return false;
		}
		return str.matches(match);
	}

}
